package thread;

/**
 * 线程的第一种创建方式：
 * 继承Thread并重写run方法
 */
public class ThreadDemo1 {
    public static void main(String[] args) {
            Thread t1=new MyThread1();//向上转型 MyThread1 extends Thread
            Thread t2=new MyThread2();
        //启动线程要调用start()方法，而不是直接调用run()方法
        t1.start();
        t2.start();
        Thread t3=new MyThread2();
    }
}
/*
第一种创建线程的方式：
优点：更方便的使用匿名内部类的形式创建，结构简单
缺点：Java是单继承的，意味着继承了Thread就无法再继承其他类了，不利于复用
       定义线程的同时定义了线程任务，导致线程和任务绑定在一起了，不利于线程的复用
 */

class MyThread1 extends Thread{
    public void run(){//重写了run
        for (int i = 0; i <1000 ; i++) {
            System.out.println("你是谁呀");
        }

    }
}

class MyThread2 extends Thread{
    public void run(){//重写了run
        for (int i = 0; i <1000 ; i++) {
            System.out.println("我是你爹");
        }

    }
}